<?php namespace Common\Model;
use Hdphp\Model\Model;
//分类操作模型
class Cate extends Model{
	//指定模型操作的表（固定的写法）
	protected $table="class";
	//自定验证（固定写法）
	protected $validate=array(
		//array(字段名，验证方法，错误信息，验证条件，验证时间)
		//验证分类名称是否正确
		array('cname','required','分类名称不能为空',3,3)
	);
	//添加add方法
	public function addData(){
		//调用add方法之前必须进过create，否则无法添加
		//create 才会触发自动验证
	    if($this->create()){
//	    	sp($_POST);exit;
	    	//调用框架里面的添加方法
	    	$cateData = array(
				"cname" => Q("post.cname"),
				"type_tid" => Q("post.type_tid",0),
				"pid" => 0
			);
//			sp($catedata);exit;
	    	$this->add($cateData);
			//添加成功发挥true
			return true;
	    }
		//添加失败返回false
		return false;
	}
	//修改
	public function editData(){
		//如果修改失败 就就返回false
	    if(!$this->create()) return false;
		//如果不想加where就能修改，那么必须在页面放主键的隐藏域
		$this->save();
		//修改成功返回true
		return true;
	}
	
	//获得除了自己和自己的所有的子级的分类
	public function getNoMy($cid){
		//获得所有自己分类的cid
		$cids=$this->getSon($this->get(),$cid);
		//把自己压进去
		$cids[]=$cid;
		//变成字符串形式
		$strCids=implode(',',$cids);
		//返回结果
		return $this->where("cid NOT IN({$strCids})")->get();
	}
	/**
	 * 递归获得所有的子级的cid
	 * @param $data 全部分类数据
	 * @param $cid  当前分类的cid
	 */
	 public function getSon($data,$cid){
	     	//声明一个空数字
	     	$temp=array();
			foreach($data as $v){
				//找子级
				if($v['pid']==$cid){
					$temp[]=$v['cid'];
					$temp=array_merge($temp,$this->getSon($data,$v['cid']));
				}
			}
			return $temp;
	 }
}



 ?>